home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / sopmtr.z / sopmtr
Text File  |  1996-03-14  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))                                                          SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SOPMTR - overwrite the general real M-by-N matrix C with   SIDE = 'L'
  10.      SIDE = 'R' TRANS = 'N'
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE SOPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO )
  14.  
  15.          CHARACTER      SIDE, TRANS, UPLO
  16.  
  17.          INTEGER        INFO, LDC, M, N
  18.  
  19.          REAL           AP( * ), C( LDC, * ), TAU( * ), WORK( * )
  20.  
  21. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  22.      SOPMTR overwrites the general real M-by-N matrix C with TRANS = 'T':
  23.      Q**T * C       C * Q**T
  24.  
  25.      where Q is a real orthogonal matrix of order nq, with nq = m if SIDE =
  26.      'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1
  27.      elementary reflectors, as returned by SSPTRD using packed storage:
  28.  
  29.      if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
  30.  
  31.      if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
  32.  
  33.  
  34. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  35.      SIDE    (input) CHARACTER*1
  36.              = 'L': apply Q or Q**T from the Left;
  37.              = 'R': apply Q or Q**T from the Right.
  38.  
  39.      UPLO    (input) CHARACTER*1
  40.              = 'U': Upper triangular packed storage used in previous call to
  41.              SSPTRD; = 'L': Lower triangular packed storage used in previous
  42.              call to SSPTRD.
  43.  
  44.      TRANS   (input) CHARACTER*1
  45.              = 'N':  No transpose, apply Q;
  46.              = 'T':  Transpose, apply Q**T.
  47.  
  48.      M       (input) INTEGER
  49.              The number of rows of the matrix C. M >= 0.
  50.  
  51.      N       (input) INTEGER
  52.              The number of columns of the matrix C. N >= 0.
  53.  
  54.      AP      (input) REAL array, dimension
  55.              (M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors
  56.              which define the elementary reflectors, as returned by SSPTRD.
  57.              AP is modified by the routine but restored on exit.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))                                                          SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      TAU     (input) REAL array, dimension (M-1) if SIDE = 'L'
  75.              or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of
  76.              the elementary reflector H(i), as returned by SSPTRD.
  77.  
  78.      C       (input/output) REAL array, dimension (LDC,N)
  79.              On entry, the M-by-N matrix C.  On exit, C is overwritten by Q*C
  80.              or Q**T*C or C*Q**T or C*Q.
  81.  
  82.      LDC     (input) INTEGER
  83.              The leading dimension of the array C. LDC >= max(1,M).
  84.  
  85.      WORK    (workspace) REAL array, dimension
  86.              (N) if SIDE = 'L' (M) if SIDE = 'R'
  87.  
  88.      INFO    (output) INTEGER
  89.              = 0:  successful exit
  90.              < 0:  if INFO = -i, the i-th argument had an illegal value
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.